package edu.ccut.saturn.studio.core.util.log;

/**
 * 记录日志的操作接口。日志级别共分5种：
 * INFO、WARN、DEBUG、ERROR、FATAL
 * 
 * @author 谷钰
 * 
 * @version 1.0 2008.09.09
 *
 */
public interface ILogger {
	
	public static final String LOGGER_LEVLE_INFO = "INFO";
	
	public static final String LOGGER_LEVLE_WARN = "WARN";
	
	public static final String LOGGER_LEVLE_DEBUG = "DEBUG";
	
	public static final String LOGGER_LEVLE_ERROR = "ERROR";
	
	public static final String LOGGER_LEVLE_FATAL = "FATAL";
	
	/**
	 * 输出INFO级别的日志
	 * @param message
	 */
	public void info(String message);
	
	/**
	 * 输出INFO级别的日志
	 * @param message
	 * @param throwable
	 */
	public void info(String message, Throwable throwable);
	
	/**
	 * 输出DEBUG级别的日志
	 * @param message
	 * @param throwable
	 */
	public void debug(String message, Throwable throwable) ;
	
	/**
	 * 输出DEBUG级别的日志
	 * @param message
	 */
	public void debug(String message);
	
	/**
	 * 输出ERROR级别的日志
	 * @param message
	 * @param throwable
	 */
	public void error(String message, Throwable throwable);
	
	/**
	 * 输出ERROR级别的日志
	 * @param message
	 */
	public void error(String message) ;
	
	/**
	 * 输出WARN级别的日志
	 * @param message
	 * @param throwable
	 */
	public void warn(String message, Throwable throwable) ;
	
	/**
	 * 输出WARN级别的日志
	 * @param message
	 */
	public void warn(String message);
	
	/**
	 * 输出FATAL级别的日志
	 * @param message
	 * @param throwable
	 */
	public void fatal(String message, Throwable throwable);
	
	/**
	 * 输出FATAL级别的日志
	 * @param message
	 */
	public void fatal(String message);
	
	/**
	 * 设置日志输出的级别
	 * @param level
	 */
	public void setLevel(String level);
	
	/**
	 * 获得日志输出的级别
	 * @return
	 */
	public String getLevel();
	
	/**
	 * 获得日志的类型
	 * @return
	 */
	public String getKey();
}

